package com.eorchis.module.trainingquestionnaire.dao;

import java.util.List;
import java.util.Map;

import com.eorchis.core.basedao.dao.IDaoSupport;
import com.eorchis.module.trainingneeds.querybean.UserInfoBean;
import com.eorchis.module.trainingquestionnaire.domain.MCQStatisticsBean;
import com.eorchis.module.trainingquestionnaire.domain.QuestionsStatisticsBean;
import com.eorchis.module.trainingquestionnaire.domain.RadioStatisticsBean;
import com.eorchis.module.trainingquestionnaire.domain.ScoreStatisticsBean;
import com.eorchis.module.trainingquestionnaire.domain.StatisticsHeaderBean;
import com.eorchis.module.trainingquestionnaire.domain.UserAnswerLinkQueryBean;
import com.eorchis.module.trainingquestionnaire.ui.commond.UserAnswerLinkQueryCommond;

/**
 * Title: IUserAnswerLinkDao<br>
 * Description: 用户答卷关联信息数据接口<br>
 * Company: GoldGov<br>
 * Copyright @ 2012 GoldGov .All rights reserved.<br>
 * @author Max
 * @createDate 2014-08-28
 * @version $Revision$
 */
public interface IUserAnswerLinkDao 
				extends IDaoSupport
{

	List<UserAnswerLinkQueryBean> findAllSubjectivesByQnId(
			UserAnswerLinkQueryCommond qCommond) throws Exception;

	List<UserAnswerLinkQueryBean> findAllSubjectivesAnByQId(
			UserAnswerLinkQueryCommond qCommond) throws Exception;

	List<UserAnswerLinkQueryBean> findAllObjectiveByQnId(
			UserAnswerLinkQueryCommond qCommond) throws Exception;

	List<UserAnswerLinkQueryBean> findOptionSubmitNum(
			UserAnswerLinkQueryCommond qCommond) throws Exception;

	List<UserInfoBean> getUserListByPnId(UserAnswerLinkQueryCommond qCommond)
			throws Exception;

	List<UserAnswerLinkQueryBean> findAllQuestionByQnId(
			UserAnswerLinkQueryCommond qCommond) throws Exception;

	boolean addUserAnswerLink(UserAnswerLinkQueryCommond qCommond)
			throws Exception;

	boolean addUserAnswerLinkTemp(UserAnswerLinkQueryCommond queryCommond)
			throws Exception;
	boolean delUserAnswerLinkTemp(UserAnswerLinkQueryCommond queryCommond)
			throws Exception;
	Map<String, String> queryUserAnswerLinkTemp(UserAnswerLinkQueryCommond queryCommond)
			throws Exception;
	Map<String, List<String>> queryUserAnswer(UserAnswerLinkQueryCommond queryCommond)
			throws Exception;
	/**
	 * 查询统计表头信息
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-3-1
	 */
	public StatisticsHeaderBean findHeader(UserAnswerLinkQueryCommond queryCommond) throws Exception;
	/**
	 * 查询数值型单选题统计列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-2-24
	 */
	public List<ScoreStatisticsBean> findScoreRadioList(UserAnswerLinkQueryCommond queryCommond) throws Exception;
	/**
	 * 查询文字型单选题统计列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-2-25
	 */
	public List<RadioStatisticsBean> findTextRadioList(UserAnswerLinkQueryCommond queryCommond) throws Exception;
	/**
	 * 查询多选题统计列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-2-25
	 */
	public List<MCQStatisticsBean> findMCQList(UserAnswerLinkQueryCommond queryCommond) throws Exception;
	/**
	 * 查询问答题统计列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-2-26
	 */
	public List<QuestionsStatisticsBean> findQuestionsList(UserAnswerLinkQueryCommond queryCommond) throws Exception;
	Map<String, Map<String, List<String>>> queryAllUserAnswer(
			UserAnswerLinkQueryCommond queryCommond)throws Exception;

	/**
	 * 删除学员试卷答案信息
	 * @param userIds
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-3-28
	 */
	public void delUserAnswerLink(String[] userIds) throws Exception;
}
